package com.ruoyi.zhgd.domain.bo;

import com.ruoyi.common.core.validate.AddGroup;
import com.ruoyi.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;

import java.util.Date;

import java.math.BigDecimal;

import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 水稳拌和楼生产级配业务对象 n_cement_match
 *
 * @author cj
 * @date 2023-10-08
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class NCementMatchBo extends BaseEntity {

    /**
     * 主键
     */
    @NotBlank(message = "主键不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 机构code
     */
    @NotBlank(message = "机构code不能为空", groups = { AddGroup.class, EditGroup.class })
    private String baseCode;

    /**
     * 项目主键
     */
    @NotBlank(message = "项目主键不能为空", groups = { AddGroup.class, EditGroup.class })
    private String projectId;

    /**
     * 拌合站code
     */
    @NotBlank(message = "拌合站code不能为空", groups = { AddGroup.class, EditGroup.class })
    private String stationCode;

    /**
     * 配方编号
     */
    @NotBlank(message = "配方编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private String matchCode;

    /**
     * 摊铺层级
     */
    @NotBlank(message = "摊铺层级不能为空", groups = { AddGroup.class, EditGroup.class })
    private String pavingLevel;

    /**
     * 集料1占比
     */
    @NotNull(message = "集料1占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel1;

    /**
     * 集料2占比
     */
    @NotNull(message = "集料2占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel2;

    /**
     * 集料3占比
     */
    @NotNull(message = "集料3占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel3;

    /**
     * 集料4占比
     */
    @NotNull(message = "集料4占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel4;

    /**
     * 集料5占比
     */
    @NotNull(message = "集料5占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel5;

    /**
     * 集料6占比
     */
    @NotNull(message = "集料6占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal gravel6;

    /**
     * 水泥1占比
     */
    @NotNull(message = "水泥1占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal powder1;

    /**
     * 水泥2占比
     */
    @NotNull(message = "水泥2占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal powder2;

    /**
     * 水占比
     */
    @NotNull(message = "水占比不能为空", groups = { AddGroup.class, EditGroup.class })
    private BigDecimal water;

    /**
     * 集料1名称
     */
    @NotBlank(message = "集料1名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel1Name;

    /**
     * 集料2名称
     */
    @NotBlank(message = "集料2名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel2Name;

    /**
     * 集料3名称
     */
    @NotBlank(message = "集料3名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel3Name;

    /**
     * 集料4名称
     */
    @NotBlank(message = "集料4名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel4Name;

    /**
     * 集料5名称
     */
    @NotBlank(message = "集料5名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel5Name;

    /**
     * 集料6名称
     */
    @NotBlank(message = "集料6名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String gravel6Name;

    /**
     * 水泥1名称
     */
    @NotBlank(message = "水泥1名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String powder1Name;

    /**
     * 水泥2名称
     */
    @NotBlank(message = "水泥2名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String powder2Name;

    /**
     * 创建者
     */
    @NotNull(message = "创建者不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long creator;

    /**
     * 创建时间
     */
    @NotNull(message = "创建时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date createDate;

    /**
     * 更新者
     */
    @NotNull(message = "更新者不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long updater;

    /**
     * 更新时间
     */
    @NotNull(message = "更新时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date updateDate;

    /**
     * 水胶比上限
     */
    private BigDecimal sjbMaxVal;
    /**
     * 水胶比下限
     */
    private BigDecimal sjbMinVal;
    /**
     * 水含量上限
     */
    private BigDecimal waterMaxVal;
    /**
     * 水含量下限
     */
    private BigDecimal waterMinVal;
    /**
     * 水泥掺量外掺上限
     */
    private BigDecimal snMaxVal;
    /**
     * 水泥掺量外掺下限
     */
    private BigDecimal snMinVal;
}
